package cn.itcalvin.sncoal.cth.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 矿井/矿区信息
 */
@ApiModel(description="矿井/矿区信息")
@Data
@Table(name = "info_mine")
public class InfoMine {
    /**
     * 主键
     */
    @Id
    @Column(name = "id")
    @ApiModelProperty(value="主键")
    @NotNull(message = "主键不能为null")
    private Long id;

    /**
     * 有父级ID为矿井，否则为矿区
     */
    @Column(name = "parentId")
    @ApiModelProperty(value="有父级ID为矿井，否则为矿区")
    private Long parentId;

    /**
     * 矿区名称
     */
    @Column(name = "mineName")
    @ApiModelProperty(value="矿区名称")
    @Size(max = 50,message = "矿区名称最大长度要小于 50")
    @NotBlank(message = "矿区名称不能为空")
    private String mineName;

    /**
     * 矿井类别 1.I类 2.Ⅱ类 3.Ⅲ类
     */
    @Column(name = "mineType")
    @ApiModelProperty(value="矿井类别 1.I类 2.Ⅱ类 3.Ⅲ类")
    @Size(max = 20,message = "矿井类别 1.I类 2.Ⅱ类 3.Ⅲ类最大长度要小于 20")
    private String mineType;

    /**
     * 是一个数组，如果为空，则代表只查询评分项为0的，反之需要对应 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输
     */
    @Column(name = "mineState")
    @ApiModelProperty(value="是一个数组，如果为空，则代表只查询评分项为0的，反之需要对应 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输")
    @Size(max = 255,message = "是一个数组，如果为空，则代表只查询评分项为0的，反之需要对应 1.有无瓦斯智能抽采 2.有无瓦斯智能防突 3.有无立井提升 4.有无轨道运输最大长度要小于 255")
    private String mineState;

    /**
     * 矿井专家评价的密码
     */
    @Column(name = "mineCheckPassword")
    @ApiModelProperty(value="矿井专家评价的密码")
    @Size(max = 255,message = "矿井专家评价的密码最大长度要小于 255")
    private String mineCheckPassword;

    /**
     * 经度
     */
    @Column(name = "longitude")
    @ApiModelProperty(value="经度")
    private BigDecimal longitude;

    /**
     * 纬度
     */
    @Column(name = "latitude")
    @ApiModelProperty(value="纬度")
    private BigDecimal latitude;

    /**
     * 矿区/矿井简介
     */
    @Column(name = "remark")
    @ApiModelProperty(value="矿区/矿井简介")
    private String remark;

    /**
     * 组织架构图
     */
    @Column(name = "zzjg")
    @ApiModelProperty(value="组织架构图")
    @Size(max = 255,message = "组织架构图最大长度要小于 255")
    private String zzjg;

    /**
     * 责任分工表
     */
    @Column(name = "zrfg")
    @ApiModelProperty(value="责任分工表")
    @Size(max = 255,message = "责任分工表最大长度要小于 255")
    private String zrfg;

    /**
     * 创建人
     */
    @Column(name = "createId")
    @ApiModelProperty(value="创建人")
    @NotNull(message = "创建人不能为null")
    private Long createId;

    /**
     * 创建时间
     */
    @Column(name = "createTime")
    @ApiModelProperty(value="创建时间")
    @NotNull(message = "创建时间不能为null")
    private Date createTime;

    /**
     * 创建人
     */
    @Column(name = "modifyId")
    @ApiModelProperty(value="创建人")
    private Long modifyId;

    /**
     * 创建时间
     */
    @Column(name = "modifyTime")
    @ApiModelProperty(value="创建时间")
    private Date modifyTime;

    /**
     * 创建人
     */
    @Column(name = "deleteId")
    @ApiModelProperty(value="创建人")
    private Long deleteId;

    /**
     * 创建时间
     */
    @Column(name = "deleteTime")
    @ApiModelProperty(value="创建时间")
    private Date deleteTime;

    /**
     * 是否删除
     */
    @Column(name = "isDelete")
    @ApiModelProperty(value="是否删除")
    @NotNull(message = "是否删除不能为null")
    private Boolean isDelete;
}